﻿
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Class: xViewer</title>
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
    <div id="main">
        <h1 class="page-title">Class: xViewer</h1>
        <section>
            <header>
                <h2>
                    xViewer
                </h2>
                <div class="class-description">
                    <p>
                        This is the main and the only class you need to load and render IFC models in wexBIM format. This viewer is part of
                        xBIM toolkit which can be used to create wexBIM files from IFC, ifcZIP and ifcXML. WexBIM files are highly optimalized for
                        transmition over internet and rendering performance. Viewer uses WebGL technology for hardware accelerated 3D rendering and SVG for
                        certain kinds of user interaction. This means that it won't work with obsolete and non-standard-compliant browsers like IE10 and less.
                    </p>
                </div>
            </header>
            <article>
                <div class="container-overview">
                    <dt>
                        <h2>Constructor</h2>
                        <h4 class="name" id="xViewer"><span class="type-signature"></span>new xViewer<span class="signature">(canvas)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This is constructor of the xBIM Viewer. It gets HTMLCanvasElement or string ID as an argument. Viewer will than be initialized
                                in the context of specified canvas. Any other argument will throw exception.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>canvas</code></td>
                                    <td class="type">
                                        <span class="param-type">string</span>
                                        |
                                        <span class="param-type">HTMLCanvasElement</span>
                                    </td>
                                    <td class="description last"><p>string ID of the canvas or HTML canvas element.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                </div>
                <h3 class="subsection-title">成员</h3>
                <dl>
                    <dt>
                        <h4 class="name" id="background"><span class="type-signature"></span>background<span class="type-signature"> :Array.&lt;Number></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Array of four integers between 0 and 255 representing RGBA colour components. This defines background colour of the viewer. You can change this value at any time with instant efect.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Array.&lt;Number></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="camera"><span class="type-signature"></span>camera<span class="type-signature"> :string</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Type of camera to be used. Available values are <strong>'perspective'</strong> and <strong>'orthogonal'</strong> You can change this value at any time with instant efect.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">string</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="clippingPlane"><span class="type-signature"></span>clippingPlane<span class="type-signature"> :Array.&lt;Number></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Clipping plane [a, b, c, d] defined as normal equation of the plane ax + by + cz + d = 0. [0,0,0,0] is for no clipping plane.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Array.&lt;Number></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="highlightingColour"><span class="type-signature"></span>highlightingColour<span class="type-signature"> :Array.&lt;Number></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Array of four integers between 0 and 255 representing RGBA colour components. This defines colour for highlighted elements. You can change this value at any time with instant efect.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Array.&lt;Number></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="lightA"><span class="type-signature"></span>lightA<span class="type-signature"> :Array.&lt;Number></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Array of four floats. It represents Light A's position <strong>XYZ</strong> and intensity <strong>I</strong> as [X, Y, Z, I]. Intensity should be in range 0.0 - 1.0.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Array.&lt;Number></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="lightB"><span class="type-signature"></span>lightB<span class="type-signature"> :Array.&lt;Number></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Array of four floats. It represents Light B's position <strong>XYZ</strong> and intensity <strong>I</strong> as [X, Y, Z, I]. Intensity should be in range 0.0 - 1.0.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Array.&lt;Number></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="navigationMode"><span class="type-signature"></span>navigationMode<span class="type-signature"> :String</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Switch between different navidation modes for left mouse button. Allowed values: <strong> 'pan', 'zoom', 'orbit' (or 'fixed-orbit') , 'free-orbit' and 'none'</strong>. Default value is <strong>'orbit'</strong>;</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">String</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="orthogonalCamera"><span class="type-signature"></span>orthogonalCamera<span class="type-signature"> :<a href="OrthogonalCamera.html">OrthogonalCamera</a></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This is a structure that holds settings of orthogonal camera. You can modify this but it is not necessary because sensible values are
                                defined when geometry model is loaded with <a href="xViewer.html#load">load()</a> method. If you want to change these values you have to do it after geometry is loaded.
                            </p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type"><a href="OrthogonalCamera.html">OrthogonalCamera</a></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="perspectiveCamera"><span class="type-signature"></span>perspectiveCamera<span class="type-signature"> :<a href="PerspectiveCamera.html">PerspectiveCamera</a></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>This is a structure that holds settings of perspective camera.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type"><a href="PerspectiveCamera.html">PerspectiveCamera</a></span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="renderingMode"><span class="type-signature"></span>renderingMode<span class="type-signature"> :String</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Switch between different rendering modes. Allowed values: <strong> 'normal', 'x-ray'</strong>. Default value is <strong>'normal'</strong>;
                                Only products with state set to state.HIGHLIGHTED or xState.XRAYVISIBLE will be rendered highlighted or in a normal colours. All other products
                                will be rendered semitransparent and singlesided.
                            </p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">String</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                </dl>
                <h3 class="subsection-title">方法</h3>
                <dl>
                    <dt>
                        <h4 class="name" id="check"><span class="type-signature">(static) </span>check<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Prerequisities.html">Prerequisities</a>}</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This is a static function which should always be called before xViewer is instantiated.
                                It will check all prerequisities of the viewer and will report all issues. If Prerequisities.errors contain
                                any messages viewer won't work. If Prerequisities.warnings contain any messages it will work but some
                                functions may be restricted or may not work or it may have poor erformance.
                            </p>
                        </div>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type"><a href="Prerequisities.html">Prerequisities</a></span>
                            </dd>
                        </dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="addPlugin"><span class="type-signature"></span>addPlugin<span class="signature">(plugin)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Adds plugin to the viewer. Plugins can implement certain methods which get called in certain moments in time like
                                before draw, after draw etc. This makes it possible to implement functionality tightly integrated into xViewer like navigation cube or others.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>plugin</code></td>
                                    <td class="type">
                                        <span class="param-type">object</span>
                                    </td>
                                    <td class="description last"><p>plug-in object</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">(point<span class="signature-attributes">opt</span>, normal<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this method to clip the model. If you call the function with no arguments interactive clipping will start. This is based on SVG overlay
                                so SVG support is necessary for it. But as WebGL is more advanced technology than SVG it is sound assumption that it is present in the browser.
                                Use <a href="xViewer.html#check">xViewer.check()</a> to make sure it is supported at the very beginning of using of xViewer. Use <a href="xViewer.html#unclip">unclip()</a> method to
                                unset clipping plane.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th>Attributes</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>point</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                    </td>
                                    <td class="attributes">
                                        &lt;optional><br>
                                    </td>
                                    <td class="description last"><p>point in clipping plane</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>normal</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                    </td>
                                    <td class="attributes">
                                        &lt;optional><br>
                                    </td>
                                    <td class="description last"><p>normal pointing to the halfspace which will be hidden</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Fires:</h5>
                        <ul>
                            <li><a href="xViewer.html#event:clipped">xViewer#event:clipped</a></li>
                        </ul>
                    </dd>
                    <dt>
                        <h4 class="name" id="defineStyle"><span class="type-signature"></span>defineStyle<span class="signature">(index, colour)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this function to define up to 224 optional styles which you can use to change appearance of products and types if you pass the index specified in this function to <a href="xViewer.html#setState">setState()</a> function.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>index</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Index of the style to be defined. This has to be in range 0 - 224. Index can than be passed to change appearance of the products in model</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>colour</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                    </td>
                                    <td class="description last"><p>Array of four numbers in range 0 - 255 representing RGBA colour. If there are less or more numbers exception is thrown.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">()</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This is a static draw method. You can use it if you just want to render model once with no navigation and interaction.
                                If you want interactive model call <a href="xViewer.html#start">start()</a> method. Frame event is fired when draw call is finished.
                            </p>
                        </div>
                        <dl class="details"></dl>
                        <h5>Fires:</h5>
                        <ul>
                            <li><a href="xViewer.html#event:frame">xViewer#event:frame</a></li>
                        </ul>
                    </dd>
                    <dt>
                        <h4 class="name" id="getCameraPosition"><span class="type-signature"></span>getCameraPosition<span class="signature">()</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this method get actual camera position.</p>
                        </div>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="getClip"><span class="type-signature"></span>getClip<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;Array.&lt;Number>>}</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This method can be used to get parameter of the current clipping plane. If no clipping plane is active
                                this returns [[0,0,0],[0,0,0]];
                            </p>
                        </div>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <div class="param-desc">
                            <p>Point and normal defining current clipping plane</p>
                        </div>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type">Array.&lt;Array.&lt;Number>></span>
                            </dd>
                        </dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="getModelState"><span class="type-signature"></span>getModelState<span class="signature">(id)</span><span class="type-signature"> &rarr; {Array}</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Gets complete model state and style. Resulting object can be used to restore the state later on.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Model ID which you can get from <a href="xViewer.html#event:loaded">loaded</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <div class="param-desc">
                            <ul>
                                <li>Array representing model state in compact form suitable for serialization</li>
                            </ul>
                        </div>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type">Array</span>
                            </dd>
                        </dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="getProductType"><span class="type-signature"></span>getProductType<span class="signature">(prodID)</span><span class="type-signature"> &rarr; {Number}</span></h4>
                    </dt>
                    <dd>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>prodID</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Product ID. You can get this value either from semantic structure of the model or by listening to <a href="xViewer.html#event:pick">pick</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <div class="param-desc">
                            <p>Product type ID. This is either null if no type is identified or one of <a href="global.html#xProductType">type ids</a>.</p>
                        </div>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type">Number</span>
                            </dd>
                        </dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="getState"><span class="type-signature"></span>getState<span class="signature">(id)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this function to get state of the products in the model. You can compare result of this function
                                with one of values from <a href="global.html#xState">xState</a> enumeration. 0xFF is the default value.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Id of the product. You would typicaly get the id from <a href="xViewer.html#event:pick">pick event</a> or similar event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="getStyle"><span class="type-signature"></span>getStyle<span class="signature">(id)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this function to get overriding colour style of the products in the model. The number you get is the index of
                                your custom colour which you have defined in <a href="xViewer.html#defineStyle">defineStyle()</a> function. 0xFF is the default value.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Id of the product. You would typicaly get the id from <a href="xViewer.html#event:pick">pick event</a> or similar event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="load"><span class="type-signature"></span>load<span class="signature">(model, tag)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This method is used to load model data into viewer. Model has to be either URL to wexBIM file or Blob or File representing wexBIM file binary data. Any other type of argument will throw an exception.
                                Region extend is determined based on the region of the model
                                Default view if 'front'. If you want to define different view you have to set it up in handler of <a href="xViewer.html#event:loaded">loaded</a> event. <br>
                                You can load more than one model if they occupy the same space, use the same scale and have unique product IDs. Duplicated IDs won't affect
                                visualization itself but would cause unexpected user interaction (picking, zooming, ...)
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>model</code></td>
                                    <td class="type">
                                        <span class="param-type">String</span>
                                        |
                                        <span class="param-type">Blob</span>
                                        |
                                        <span class="param-type">File</span>
                                    </td>
                                    <td class="description last"><p>Model has to be either URL to wexBIM file or Blob or File representing wexBIM file binary data.</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>tag</code></td>
                                    <td class="type">
                                        <span class="param-type">Any</span>
                                    </td>
                                    <td class="description last"><p>[optional] - Tag to be used to identify the model in <a href="xViewer.html#event:loaded">loaded</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Fires:</h5>
                        <ul>
                            <li><a href="xViewer.html#event:loaded">xViewer#event:loaded</a></li>
                        </ul>
                    </dd>
                    <dt>
                        <h4 class="name" id="off"><span class="type-signature"></span>off<span class="signature">(eventName, callback)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this method to unregisted handlers from events. You can add event handlers by calling the <a href="xViewer.html#on">on()</a> method.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>eventName</code></td>
                                    <td class="type">
                                        <span class="param-type">String</span>
                                    </td>
                                    <td class="description last"><p>Name of the event</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>callback</code></td>
                                    <td class="type">
                                        <span class="param-type">Object</span>
                                    </td>
                                    <td class="description last"><p>Handler to be removed</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="on"><span class="type-signature"></span>on<span class="signature">(eventName, callback)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this method to register to events of the viewer like <a href="xViewer.html#event:pick">pick</a>, <a href="xViewer.html#event:mouseDown">mouseDown</a>,
                                <a href="xViewer.html#event:loaded">loaded</a> and others. You can define arbitrary number
                                of event handlers for any event. You can remove handler by calling <a href="xViewer.html#off">off()</a> method.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>eventName</code></td>
                                    <td class="type">
                                        <span class="param-type">String</span>
                                    </td>
                                    <td class="description last"><p>Name of the event you would like to listen to.</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>callback</code></td>
                                    <td class="type">
                                        <span class="param-type">Object</span>
                                    </td>
                                    <td class="description last"><p>Callback handler of the event which will consume arguments and perform any custom action.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="removePlugin"><span class="type-signature"></span>removePlugin<span class="signature">(plugin)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Removes plugin from the viewer. Plugins can implement certain methods which get called in certain moments in time like
                                before draw, after draw etc. This makes it possible to implement functionality tightly integrated into xViewer like navigation cube or others.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>plugin</code></td>
                                    <td class="type">
                                        <span class="param-type">object</span>
                                    </td>
                                    <td class="description last"><p>plug-in object</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="resetStates"><span class="type-signature"></span>resetStates<span class="signature">(hideSpaces<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this function to reset state of all products to 'UNDEFINED' which means visible and not highlighted.
                                You can use optional hideSpaces parameter if you also want to show spaces. They will be hidden by default.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th>Attributes</th>
                                    <th>Default</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>hideSpaces</code></td>
                                    <td class="type">
                                        <span class="param-type">Bool</span>
                                    </td>
                                    <td class="attributes">
                                        &lt;optional><br>
                                    </td>
                                    <td class="default">
                                        true
                                    </td>
                                    <td class="description last">
                                        <p>
                                            Default state is UNDEFINED which would also show spaces. That is often not
                                            desired so it can be excluded with this parameter.
                                        </p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="resetStyles"><span class="type-signature"></span>resetStyles<span class="signature">()</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this function to reset appearance of all products to their default styles.</p>
                        </div>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="restoreModelState"><span class="type-signature"></span>restoreModelState<span class="signature">(id, state)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Restores model state from the data previously captured with <a href="xViewer.html#getModelState">getModelState()</a> function</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>ID of the model</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>state</code></td>
                                    <td class="type">
                                        <span class="param-type">Array</span>
                                    </td>
                                    <td class="description last"><p>State of the model as obtained from <a href="xViewer.html#getModelState">getModelState()</a> function</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="set"><span class="type-signature"></span>set<span class="signature">(settings)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>This method can be used for batch setting of viewer members. It doesn't check validity of the input.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>settings</code></td>
                                    <td class="type">
                                        <span class="param-type">Object</span>
                                    </td>
                                    <td class="description last"><p>Object containing key - value pairs</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="setCameraPosition"><span class="type-signature"></span>setCameraPosition<span class="signature">(coordinates)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this method to set position of camera. Use it after <a href="xViewer.html#setCameraTarget">setCameraTarget()</a> to get desired result.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>coordinates</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                    </td>
                                    <td class="description last"><p>3D coordinates of the camera in WCS</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="setCameraTarget"><span class="type-signature"></span>setCameraTarget<span class="signature">(prodId)</span><span class="type-signature"> &rarr; {Bool}</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This method sets navigation origin to the centroid of specified product's bounding box or to the center of model if no product ID is specified.
                                This method doesn't affect the view itself but it has an impact on navigation. Navigation origin is used as a center for orbiting and it is used
                                if you call functions like show() or {@link xViewer#zoomTo zoomTo()}.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>prodId</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>[optional] Product ID. You can get ID either from semantic structure of the model or from <a href="xViewer.html#event:pick">pick event</a>.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <div class="param-desc">
                            <p>True if the target exists and is set, False otherwise</p>
                        </div>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type">Bool</span>
                            </dd>
                        </dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="setState"><span class="type-signature"></span>setState<span class="signature">(state, target)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                You can use this function to change state of products in the model. State has to have one of values from <a href="global.html#xState">xState</a> enumeration.
                                Target is either enumeration from <a href="global.html#xProductType">xProductType</a> or array of product IDs. If you specify type it will effect all elements of the type.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>state</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>One of <a href="global.html#xState">xState</a> enumeration values.</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>target</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                        |
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Target of the change. It can either be array of product IDs or product type from <a href="global.html#xProductType">xProductType</a>.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="setStyle"><span class="type-signature"></span>setStyle<span class="signature">(style, target)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this method for restyling of the model. This doesn't change the default appearance of the products so you can think about it as an overlay. You can
                                remove the overlay if you set the style to xState.UNSTYLED value. You can combine restyling and hiding in this way.
                                Use <a href="xViewer.html#defineStyle">defineStyle()</a> to define styling first.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>style</code></td>
                                    <td class="type"></td>
                                    <td class="description last"><p>style defined in <a href="xViewer.html#defineStyle">defineStyle()</a> method</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>target</code></td>
                                    <td class="type">
                                        <span class="param-type">Array.&lt;Number></span>
                                        |
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>Target of the change. It can either be array of product IDs or product type from <a href="global.html#xProductType">xProductType</a>.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="show"><span class="type-signature"></span>show<span class="signature">(type)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this function to show default views.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>type</code></td>
                                    <td class="type">
                                        <span class="param-type">String</span>
                                    </td>
                                    <td class="description last">
                                        <p>
                                            Type of view. Allowed values are <strong>'top', 'bottom', 'front', 'back', 'left', 'right'</strong>.
                                            Directions of this views are defined by the coordinate system. Target and distance are defined by <a href="xViewer.html#setCameraTarget">setCameraTarget()</a> method to certain product ID
                                            or to the model extent if <a href="xViewer.html#setCameraTarget">setCameraTarget()</a> is called with no arguments.
                                        </p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="start"><span class="type-signature"></span>start<span class="signature">(id)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this function to start animation of the model. If you start animation before geometry is loaded it will wait for content to render it.
                                This function is bound to browser framerate of the screen so it will stop consuming any resources if you switch to another tab.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>[optional] - Optional ID of the model to be stopped. You can get this ID from <a href="xViewer.html#event:loaded">loaded</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="stop"><span class="type-signature"></span>stop<span class="signature">(id)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Use this function to stop animation of the model. User will still be able to see the latest state of the model. You can
                                switch animation of the model on again by calling <a href="xViewer.html#start">start()</a>.
                            </p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>[optional] - Optional ID of the model to be stopped. You can get this ID from <a href="xViewer.html#event:loaded">loaded</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="stopClipping"><span class="type-signature"></span>stopClipping<span class="signature">()</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>This method is only active when interactive clipping is active. It stops interactive clipping operation.</p>
                        </div>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="unclip"><span class="type-signature"></span>unclip<span class="signature">()</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                This method will cancel any clipping plane if it is defined. Use <a href="xViewer.html#clip">clip()</a>
                                method to define clipping by point and normal of the plane or interactively if you call it with no arguments.
                            </p>
                        </div>
                        <dl class="details"></dl>
                        <h5>Fires:</h5>
                        <ul>
                            <li><a href="xViewer.html#event:unclipped">xViewer#event:unclipped</a></li>
                        </ul>
                    </dd>
                    <dt>
                        <h4 class="name" id="unload"><span class="type-signature"></span>unload<span class="signature">(modelId)</span><span class="type-signature"></span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Unloads model from the GPU. This action is not reversable.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>modelId</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>ID of the model which you can get from <a href="xViewer.html#event:loaded">loaded</a> event.</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="zoomTo"><span class="type-signature"></span>zoomTo<span class="signature">(id<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Bool}</span></h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Use this method to zoom to specified element. If you don't specify a product ID it will zoom to full extent.</p>
                        </div>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th>Attributes</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="attributes">
                                        &lt;optional><br>
                                    </td>
                                    <td class="description last"><p>Product ID</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                        <h5>Returns:</h5>
                        <div class="param-desc">
                            <p>True if target exists and zoom was successfull, False otherwise</p>
                        </div>
                        <dl>
                            <dt>
                                Type
                            </dt>
                            <dd>
                                <span class="param-type">Bool</span>
                            </dd>
                        </dl>
                    </dd>
                </dl>
                <h3 class="subsection-title">事件</h3>
                <dl>
                    <dt>
                        <h4 class="name" id="event:clipped">clipped</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when model is clipped. This event has empty object.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:dblclick">dblclick</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when user double clicks on model.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>product ID of the element or null if there wasn't any product under mouse</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:error">error</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when viewer encounters error. You should listen to this because it might also report asynchronous errors which you would miss otherwise.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>message</code></td>
                                    <td class="type">
                                        <span class="param-type">string</span>
                                    </td>
                                    <td class="description last"><p>Error message</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:fps">fps</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs after every 30th frame in animation. Use this event if you want to report FPS to the user. It might also be interesting performance measure.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">Number</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:frame">frame</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs after every frame in animation. Don't do anything heavy weighted in here as it will happen about 60 times in a second all the time.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:loaded">loaded</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>
                                Occurs when geometry model is loaded into the viewer. This event returns object containing ID of the model.
                                This ID can later be used to unload or temporarily stop the model.
                            </p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>model ID</p></td>
                                </tr>
                                <tr>
                                    <td class="name"><code>tag</code></td>
                                    <td class="type">
                                        <span class="param-type">Any</span>
                                    </td>
                                    <td class="description last"><p>tag which was passed to 'xViewer.load()' function</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:mouseDown">mouseDown</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when mousedown event happens on underlying canvas.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>product ID of the element or null if there wasn't any product under mouse</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:pick">pick</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when user click on model.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <h5>Parameters:</h5>
                        <table class="params">
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Type</th>
                                    <th class="last">Description</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="name"><code>id</code></td>
                                    <td class="type">
                                        <span class="param-type">Number</span>
                                    </td>
                                    <td class="description last"><p>product ID of the element or null if there wasn't any product under mouse</p></td>
                                </tr>
                            </tbody>
                        </table>
                        <dl class="details"></dl>
                    </dd>
                    <dt>
                        <h4 class="name" id="event:unclipped">unclipped</h4>
                    </dt>
                    <dd>
                        <div class="description">
                            <p>Occurs when clipping of the model is dismissed. This event has empty object.</p>
                        </div>
                        <h5>Type:</h5>
                        <ul>
                            <li>
                                <span class="param-type">object</span>
                            </li>
                        </ul>
                        <dl class="details"></dl>
                    </dd>
                </dl>
            </article>
        </section>
    </div>
    <nav>
        <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="OrthogonalCamera.html">OrthogonalCamera</a></li><li><a href="PerspectiveCamera.html">PerspectiveCamera</a></li><li><a href="Prerequisities.html">Prerequisities</a></li><li><a href="xBrowser.html">xBrowser</a></li><li><a href="xNavigationCube.html">xNavigationCube</a></li><li><a href="xNavigationHome.html">xNavigationHome</a></li><li><a href="xViewer.html">xViewer</a></li><li><a href="xVisualAssignmentSet.html">xVisualAssignmentSet</a></li><li><a href="xVisualAttribute.html">xVisualAttribute</a></li><li><a href="xVisualEntity.html">xVisualEntity</a></li><li><a href="xVisualModel.html">xVisualModel</a></li><li><a href="xVisualProperty.html">xVisualProperty</a></li></ul><h3>Events</h3><ul><li><a href="xBrowser.html#event:entityActive">entityActive</a></li><li><a href="xBrowser.html#event:entityClick">entityClick</a></li><li><a href="xBrowser.html#event:entityDblclick">entityDblclick</a></li><li><a href="xBrowser.html#event:entityMouseDown">entityMouseDown</a></li><li><a href="xBrowser.html#event:entityMouseMove">entityMouseMove</a></li><li><a href="xBrowser.html#event:entityMouseUp">entityMouseUp</a></li><li><a href="xBrowser.html#event:entityTouch">entityTouch</a></li><li><a href="xBrowser.html#event:loaded">loaded</a></li><li><a href="xViewer.html#event:clipped">clipped</a></li><li><a href="xViewer.html#event:dblclick">dblclick</a></li><li><a href="xViewer.html#event:error">error</a></li><li><a href="xViewer.html#event:fps">fps</a></li><li><a href="xViewer.html#event:frame">frame</a></li><li><a href="xViewer.html#event:loaded">loaded</a></li><li><a href="xViewer.html#event:mouseDown">mouseDown</a></li><li><a href="xViewer.html#event:pick">pick</a></li><li><a href="xViewer.html#event:unclipped">unclipped</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-1_Hello_building.html">Hello building!</a></li><li><a href="tutorial-2_Safe_Hello_building.html">Safe 'Hello building!'</a></li><li><a href="tutorial-3_Eventful_building.html">Eventful building</a></li><li><a href="tutorial-4_Building_seen_from_everywhere.html">Building seen from everywhere ...</a></li><li><a href="tutorial-5_Colourful_building.html">Colourful building</a></li><li><a href="tutorial-6_Building_described.html">Building described</a></li></ul><h3>Global</h3><ul><li><a href="global.html#xProductType">xProductType</a></li><li><a href="global.html#xState">xState</a></li></ul>
    </nav>
    <br clear="both">
    <footer>
        Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha11</a> on Tue Jul 12 2016 16:17:58 GMT+0200 (Central Europe Daylight Time)
    </footer>
    <script>prettyPrint();</script>
    <script src="scripts/linenumber.js"></script>
</body>
</html>